
public class RecorridoZicZac {

	/*La nave debe estar posicionada al norte de la base*/
	public void ejecutar(Nave miNave){
		Radar miRadar = miNave.getRadar();
		
		this.destruirAsteroides(miNave, miRadar);
		miNave.avanzarAlNorte();
		
		/*Avanzo en zic zac hacia el norte
		 *  y destruyo los asteroides que hay alrededor de la nave*/
		while(miRadar.escanearNorte() != Espectro.DESCONOCIDO){
			this.destruirAsteroides(miNave, miRadar);
			miNave.avanzarAlEste();
		
			for(int i=0; i<2; i++){
				this.destruirAsteroides(miNave, miRadar);
				miNave.avanzarAlNorte();
			}
			
			this.destruirAsteroides(miNave, miRadar);
			miNave.avanzarAlOeste();
			
			for(int i=0; i<2; i++){
				this.destruirAsteroides(miNave, miRadar);
				miNave.avanzarAlNorte();
			}
		}
	}
	
	public void destruirAsteroides(Nave miNave, Radar miRadar){
		while(miRadar.escanearNorte() == Espectro.ASTEROIDE){
			miNave.atacarAlNorte();
		}
		while(miRadar.escanearOeste() == Espectro.ASTEROIDE){
			miNave.atacarAlOeste();
		}
		while(miRadar.escanearSur() == Espectro.ASTEROIDE){
			miNave.atacarAlSur();
		}
		while(miRadar.escanearEste() == Espectro.ASTEROIDE){
			miNave.atacarAlEste();
		}
	}
}
